The present invention relates generally to integrated circuits and, more particularly, to a circuit for detecting a load current on a bus that compensates for non-linearity thereof.
Two-wire (e.g., current loop) communications interfaces are widely used in automotive and industrial applications to minimize wiring and failure points in mission-critical and cost-sensitive applications. One such interface is covered under the Distributed System Interface (version 3) standard (herein “DSI3”), Feb. 16, 2011, incorporated herein by reference in its entirety, see http://www.dsiconsortium.org/downloads/DSI3_%20Bus_Standard_r1.00.pdf. Another such interface standard is known as the Peripheral Sensor Interface for Automotive Applications (version 5) standard (herein “PSI5”), incorporated herein by reference in its entirety, see http://psi5.org/fileadmin/user_upload/01_psi5.org/04_Specifica tion/Specifications_PDFs/psi5_spec_v2d1_base.pdf.
DSI3 is a third-generation slave/satellite interface bus primarily intended for safety-critical communication between a central master interface and multiple satellite nodes, also called slaves. Slave nodes can be implemented as simple state machines or as microprocessor- or DSP-based controllers. The slaves can provide raw data signal sources or pre-processed signal sources. Each slave can contain a single data source or multiple data sources. Slave nodes can also provide output and control functions.
Included within the DSI3 protocol is a Discovery Mode in which slave devices automatically determine their position on a serial daisy-chain bus, and each slave is assigned a unique physical address. The Discovery Mode allows for the unique identification of slaves that may have the same identical features and part number, according to their position on the serial daisy-chain bus. For slaves with unique characteristics, the Discovery Mode can be used to ensure that the device with the correct capability is in the proper location of the serial daisy-chain bus. The primary target application area for the DSI3 network is automotive airbag systems; however, it is anticipated that the new features of the protocol will also allow the use of DSI3 in other application areas.
The DSI3 protocol has been designed to improve upon the capabilities of existing sensor-bus protocols. In particular there are bandwidth improvements, EMC improvements, and data integrity improvements. There are also fundamental changes that allow for reduced cost implementations.
Both DSI3 and PSI5 standards use a two-wire interface to enable the master controller to talk to one or more slave or satellite devices in at least a daisy-chain configuration as illustrated in configuration 100 of FIG. 1.
DSI3 defines a forward channel for master-to-slave communication and a reverse channel for slave-to-master communication. The forward channel uses voltage fluctuations, and the reverse channel uses current fluctuations. DSI3 uses a half-duplex command-and-response transaction model. With the command-and-response transaction model, the master always initiates the communication cycle via a voltage-modulated command, and the addressed slave responds with a current-modulated response.
The physical layer of DSI3 allows for a connection between a single master and one or multiple slaves. The physical-layer interface provides both power and data communication signals.
Per DSI3, as illustrated in FIG. 1, a master 110 and slaves 120(1)-120(n) share a common ground wire 130, and the master 110 provides a supply voltage VQ to the slaves 120 less a small voltage drop across the current-sense resistor RM of the master 110 when the first slave device 120(1) in the daisy chain, and less additional small-voltage drops across the current-sense resistors RS of the preceding slaves 120 for each subsequent slave.
Using a wire 140, the master 110 may also signal commands to the slaves 120 using changes in supply voltage VQ that are conveyed (with inconsequential voltage reductions) through small-value (e.g., 2 ohm) series resistors RM and RS as applicable, which changes are sufficiently small that they should not compromise the operation of the slave circuits, yet sufficiently large that they should be detectable and decoded by the slaves.
Each command can be uniquely addressed to a specific slave using the address for the slave that is determined during the Discovery Mode phase of the DSI3 protocol. The slaves 120 respond to the master 110 using a current-modulation mechanism that can be detected and decoded by the master 110. For example, the slave 120(1) may be addressed by the master 110 with a voltage-encoded command requesting a sensor value be reported corresponding to a sensor associated with the slave 120(1). The slave 120(1) may respond by modulating its output current, which current modulation would return to the master 110 on the common return wire 130, where it may be sensed and decoded by the master 110.
An important part of the DSI3 standard is the DSI3 address Discovery Mode (DM) protocol. The DM protocol starts after power is applied, with all of the slaves 120 setting an internal address counter to binary “1.” The master 110 then transmits a unique Discover command via voltage modulation. After a specified time, all of the slaves 120 enter a mode where they start to reply to the master 110 by inserting additional current into the loop (above and beyond any quiescent current they may already be drawing). For example, the slave 120(1) may start to reply to the master 110's command by inserting a reply current into the loop (IREPLY) using its internal current source 160.
In DSI3, reply currents are inserted at one of two levels as part of a two-level logic system. The first level is called IRESP, and it can vary from 10.5 to 13.5 mA. The second level is called 2*IRESP, and it can vary from 21 to 27 mA. The appropriate reply current to a DM command is 2*IRESP.
Note that a reply current inserted by the current source 160 of the slave 120(1) returns directly to the master 110 via the common wire 130. It is thus not part of any output current from the slave 120(1) that would be carried by a wire 150 between the first and second slaves 120(1) and 120(2). It is similarly not sensed as part of the output load current seen by the slave 120(1). Further, the reply current from the slave 120(1) similarly does not contribute to any load current seen by the slaves 120(2)-120(n) that are downstream of the slave 120(1) in the daisy chain.
On the other hand, a reply current inserted into the current loop by the slave 120(2) would be an incremental part of the load current that passes through a sense resistor 180 of the slave 120(1), and is thus detectable by the slave 120(1), but it would not, for example, be part of the load current seen by slaves downstream of the slave 120(1) (including slave 120(2) itself).
During Discovery Mode, each of the slaves 120 monitors the load current that passes through its sense resistor RS. There are two different situations that a slave may encounter based on its position in the daisy chain.
(1) Last Slave—If, during DM, a slave does not detect additional load current through its sense resistor (i.e., additional current being drawn by one or more downstream slaves that is approaching a 2*IRESP level that is above the cumulative quiescent current of the downstream slaves), it then logically concludes that it is the last device in the daisy chain, and it sets its address register to the current value of the address counter (which would be equal to 1 if this is the first time through this process after power is applied). After a specified time, each slave deactivates its reply current and does not re-activate it until the current Discovery cycle has completed.
(2) Other Than Last Slave—If a slave does detect additional load current through its sense resistor (above the cumulative quiescent current it sees during periods of inactivity on the bus), it then recognizes that it is not the last slave in the daisy chain, so it immediately deactivates its reply current and increments its address counter.
Following steps (1) and (2) above, the Discovery command is reissued, and steps (1) and (2) are repeated until all slaves have accepted an address. For example, for n=3 in exemplary system 100 of FIG. 1, the discovery phase would require 3 cycles to complete, and, at its end, slave 120(3) will have address 1, slave 120(2) will have address 2, and slave 120(1) will have address 3.
In principle, the implementation of the discovery protocol is straightforward. However, in practice, the load current at the output of a slave device that is close to the master in the daisy chain (e.g., the current in the wire 150 of the slave 120(1) of FIG. 1) can differ significantly from the load current output from a slave device that is further down the daisy chain.
For example, even when all of the slaves 120 are dormant (i.e., no slave is supplying reply current), a first slave in an n-slave network will see a load current ILOAD that is n times greater than the load current seen by the last slave in the daisy chain. When no slaves are replying to the master 110, the load current seen by the first slave 120(1) is the sum of quiescent currents of all of the slaves that are further down the daisy chain than the first slave. If a single slave is replying somewhere further down the chain, the first slave will see an ILOAD that additionally includes IRESP or 2*IRESP of that single slave.
In a typical DSI3 implementation, the individual quiescent current of a slave Iq_slave may vary from 8 to 12 mA, but the total static quiescent bus loading of n slaves may be between 2 mA and 38 to 42 mA max. The reply current associated with a Discovery command from a single slave is from 21 to 27 mA (for a reply equal to 2*IRESP) and can constitute a significant part of the load current seen at a slave. Thus, the total load current seen at a slave, such as slave 120(1) of FIG. 1, can vary between roughly 8 and 69 mA. In a DSI3 DM implementation, a slave will typically shut itself down when it sees a load current of IRESP above the quiescent load current.
In general, the transconductance of a current detector in the slave is non-linear across such large variations in ILOAD based on the effect of ILOAD on the operating point of circuitry utilized within the slave device. This non-linearity in long daisy chains of devices, in the presence of electronic noise that is typical of the implementation environment for DSI3 and related protocols, can lead to errors in the execution of the discovery protocol and other slave current-response signaling. Such errors are unacceptable in the typical application spaces of these protocols, which include, for example, safety-restraint systems and airbag-control systems in automobiles. Thus, methods are crucially needed to reduce non-linearity in the circuits used to implement slave devices.